package com.jiezuo.flowable.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jiezuo.flowable.entity.ModelPageQuery;
import com.jiezuo.common.vo.PageVo;
import org.flowable.ui.modeler.domain.Model;
import org.flowable.ui.modeler.model.ModelRepresentation;

import java.util.List;

/**
 * @description 模型管理 创建/删除/发布
 * @author 庞留杰
 * @date 2020/9/11 18:01
 * @version V1.0
 **/
public interface UserModelService {

    /**
     * 功能描述: 新建一个流程模型
     *      参数参考：flowable-ui-modeler-logic-6.5.0.jar->org.flowable.ui.modeler.model.ModelRepresentation
     */
    ModelRepresentation createModel(ModelRepresentation modelRepresentation);

    /**
     * 功能描述: 查询所有流程模型
     */
    Page findModelerPage(PageVo pageVo, ModelPageQuery modelPageQuery);

    List<Model> findModelerList(ModelPageQuery modelPageQuery);

    /**
     * 功能描述: 删除流程模型Model
     */
    void deleteModel(String id);

    /**
     * @description 发布流程图
     **/
    void deploy(String modelId) throws Exception;

}
